package chapter02

object Test06_Function3 {
  def main(args: Array[String]): Unit = {
    //闭包
    def f1() = {
      var a = 10
      //内部定义了一个函数 用到了函数内部的局部变量
      def f2(b:Int): Unit = {
        a+=1
        println(a+b)
      }
      f2 _
    }
    //使用变量接收f1的返回值
    val a = f1()
    a(20)
    a(20)
    //直接调用
    f1()(20)
    f1()(20)
    //柯里化的写法
    def f3(a: Int)(b: Int): Int = {
      a + b
    }
    println(f3(3)(5))
  }
}
